home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Whiteline: delta
/
whiteline CD Series - delta.iso
/
vision
/
povray
/
scenes
/
level3
/
piece1.pov
< prev
next >
Wrap
Text File
|
1995-11-25
|
12KB
|
499 lines
// Persistence Of Vision raytracer version 2.0 sample file.
// piece I:
// by Truman Brown 11/91
// Close-up of a museum piece in the Woild Museum
// The lighting is intentionally dim when the image is rendered.
// You can enhance the image using PicLab's gamma, brightness, and
// contrast command when you post-process the image.
#include "colors.inc"
#include "textures.inc"
#include "shapes.inc"
camera {
location <-36.0, 29.0, -70.0>
direction < 0.0, 0.0, 2.0 >
up < 0.2, 0.8, 0.0 >
right < 4/3, 0.0, 0.0 >
look_at < 0.0, -8.0, 0.0 >
}
// ----------------------------------------------------------------------------
// lights
// ----------------------------------------------------------------------------
#declare Light1c = color red 0.1 green 0.1 blue 0.1
#declare Light2c = color red 0.2 green 0.2 blue 0.2
#declare Light3c = color red 0.3 green 0.3 blue 0.3
#declare Light4c = color red 0.4 green 0.4 blue 0.4
#declare Light5c = color red 0.5 green 0.5 blue 0.5
#declare light1 = light_source { <0.0, 0.0, 0.0> color Light1c }
#declare light2 = light_source { <0.0, 0.0, 0.0> color Light2c }
#declare light3 = light_source { <0.0, 0.0, 0.0> color Light3c }
#declare light4 = light_source { <0.0, 0.0, 0.0> color Light4c }
#declare light5 = light_source { <0.0, 0.0, 0.0> color Light5c }
union {
object { light1 translate < 35, 30, -16> }
object { light3 translate < -25, 40, 20> }
object { light2 translate < -48, 30, -20> }
object { light5 translate < 20, -10, -22> }
pigment { White }
}
// ----------------------------------------------------------------------------
// textures
// ----------------------------------------------------------------------------
#declare rod_texture1 =
texture {
pigment { Firebrick }
finish {
specular 0.9
roughness 0.001
ambient 0.0
diffuse 0.5
reflection 0.25
}
}
#declare loop_texture =
texture {
pigment { Black }
finish {
ambient 0.01
diffuse 0.45
specular 1.00
roughness 0.001
reflection 0.4
}
}
#declare innertube_texture =
texture {
pigment { SteelBlue }
finish {
ambient 0.05
diffuse 0.1
specular 1.00
roughness 0.001
reflection 0.90
}
}
#declare balls_texture =
texture {
pigment { White }
finish {
ambient 0.01
diffuse 0.3
specular 1.00
roughness 0.001
reflection 0.85
}
}
#declare tile1_texture =
texture {
pigment {
wood
turbulence 0.5
color_map {
[0.0 0.7 color red 0.93 green 0.710 blue 0.532
color red 0.98 green 0.810 blue 0.600]
[0.7 1.01 color red 0.60 green 0.333 blue 0.266
color red 0.70 green 0.600 blue 0.23]
}
rotate 90*y
scale 5
}
finish {
crand 0.05
specular 1.0
roughness 0.001
ambient 0.05
diffuse 0.35
reflection 0.15
}
}
#declare tile2_texture =
texture {
pigment {
wood
turbulence 0.6
color_map {
[0.0 0.8 color red 0.42857 green 0.23810 blue 0.04762
color red 0.42857 green 0.23810 blue 0.04762]
[0.8 1.01 color red 0.4 green 0.333 blue 0.066
color red 0.2 green 0.033 blue 0.033]
}
scale 7
}
finish {
crand 0.05
specular 1.0
roughness 0.001
ambient 0.01
diffuse 0.75
reflection 0.15
}
}
#declare frame_texture =
texture {
Bronze_Texture
finish {
specular 1.0
roughness 0.001
ambient 0.11
diffuse 0.8
reflection 0.85
}
}
// ----------------------------------------------------------------------------
// torus primatives
// ----------------------------------------------------------------------------
#declare torus1 =
quartic { <
1.0, 0.0, 0.0, 0.0, 2.0, /* major radius: 5.0 */
0.0, 0.0, 2.0, 0.0, -50.5, /* minor radius: 0.5 */
0.0, 0.0, 0.0, 0.0, 0.0, /* outer radius: 5.5 */
0.0, 0.0, 0.0, 0.0, 0.0, /* inner radius: 4.5 */
1.0, 0.0, 0.0, 2.0, 0.0,
49.5, 0.0, 0.0, 0.0, 0.0,
1.0, 0.0, -50.50, 0.0, 612.5625 >
}
#declare torus2=
quartic { <
1.0, 0.0, 0.0, 0.0, 2.0, /* major radius: 0.8 */
0.0, 0.0, 2.0, 0.0, -1.36, /* minor radius: 0.2 */
0.0, 0.0, 0.0, 0.0, 0.0, /* outer radius: 1.0 */
0.0, 0.0, 0.0, 0.0, 0.0, /* inner radius: 0.6 */
1.0, 0.0, 0.0, 2.0, 0.0,
1.2, 0.0, 0.0, 0.0, 0.0,
1.0, 0.0, -1.36, 0.0, 0.36 >
}
#declare torus3 =
quartic { <
1.0, 0.0, 0.0, 0.0, 2.0, /* major radius: 12.0 */
0.0, 0.0, 2.0, 0.0, -296.0, /* minor radius: 2.0 */
0.0, 0.0, 0.0, 0.0, 0.0, /* outer radius: 14.0 */
0.0, 0.0, 0.0, 0.0, 0.0, /* inner radius: 10.0 */
1.0, 0.0, 0.0, 2.0, 0.0,
280.0, 0.0, 0.0, 0.0, 0.0,
1.0, 0.0, -296.0, 0.0, 19600.0 >
}
#declare torus4 =
quartic { <
1.0, 0.0, 0.0, 0.0, 2.0, /* major radius: 7.0 */
0.0, 0.0, 2.0, 0.0, -98.5, /* minor radius: 0.5 */
0.0, 0.0, 0.0, 0.0, 0.0, /* outer radius: 7.5 */
0.0, 0.0, 0.0, 0.0, 0.0, /* inner radius: 6.5 */
1.0, 0.0, 0.0, 2.0, 0.0,
97.5, 0.0, 0.0, 0.0, 0.0,
1.0, 0.0, -98.5, 0.0, 2376.5625 >
}
// ----------------------------------------------------------------------------
// piece definitions
// ----------------------------------------------------------------------------
#declare halfring =
object {
torus1
rotate 90*x
clipped_by {
plane { -y, 0 }
}
texture { rod_texture1 }
bounded_by {
sphere { <0, 0, 0>, 5.51 }
}
translate -12*x
}
#declare halfring_array =
union {
object { halfring rotate -10*y }
object { halfring rotate -40*y }
object { halfring rotate -100*y }
object { halfring rotate -130*y }
object { halfring rotate -190*y }
object { halfring rotate -220*y }
object { halfring rotate -280*y }
object { halfring rotate -310*y }
bounded_by {
sphere { <0, 0, 0>, 17.51 }
}
}
#declare quarterring =
object {
torus1
rotate 90*x
clipped_by {
plane { y, 0 }
plane { x, 0 }
}
texture {
rod_texture1
}
bounded_by {
sphere { <-2.75, -2.75, 0>, 3.9 }
}
translate <-12, 0, 0>
}
#declare quarterring_array =
union {
object { quarterring rotate -10*y }
object { quarterring rotate -40*y }
object { quarterring rotate -100*y }
object { quarterring rotate -130*y }
object { quarterring rotate -190*y }
object { quarterring rotate -220*y }
object { quarterring rotate -280*y }
object { quarterring rotate -310*y }
bounded_by {
sphere { <0, 0, 0>, 17.51 }
}
}
#declare ringball =
sphere {
<0, -5.0, 0>, 1.0
texture {
rod_texture1
}
translate <-12, 0, 0>
}
#declare ringball_array =
union {
object { ringball rotate -10*y }
object { ringball rotate -40*y }
object { ringball rotate -100*y }
object { ringball rotate -130*y }
object { ringball rotate -190*y }
object { ringball rotate -220*y }
object { ringball rotate -280*y }
object { ringball rotate -310*y }
bounded_by {
sphere { <0, 0, 0>, 13.5 }
}
}
#declare pole =
object {
Disk_Y
rotate 180*x
scale <0.5, 20, 0.5>
translate <5, 0, 0>
texture {
rod_texture1
}
translate <-12, 0, 0>
}
#declare pole_array =
union {
object { pole rotate -10*y }
object { pole rotate -40*y }
object { pole rotate -100*y }
object { pole rotate -130*y }
object { pole rotate -190*y }
object { pole rotate -220*y }
object { pole rotate -280*y }
object { pole rotate -310*y }
bounded_by {
sphere { <0, -10, 0>, 13.5 }
}
}
#declare blueloop =
object {
torus2
rotate 90*z
texture {
loop_texture
}
bounded_by {
sphere { <0, 0, 0>, 1.1 }
}
}
#declare blueloop_set =
union {
object { blueloop translate 5*y rotate 0*z }
object { blueloop translate 5*y rotate +90*z }
object { blueloop translate 5*y rotate -90*z }
bounded_by {
sphere { <0, 0, 0>, 6.51 }
}
translate -12*x
}
#declare blueloop_array =
union {
object { blueloop_set rotate -10*y }
object { blueloop_set rotate -40*y }
object { blueloop_set rotate -100*y }
object { blueloop_set rotate -130*y }
object { blueloop_set rotate -190*y }
object { blueloop_set rotate -220*y }
object { blueloop_set rotate -280*y }
object { blueloop_set rotate -310*y }
bounded_by {
sphere { <0, 0, 0>, 18.51 }
}
}
#declare basering =
object {
torus4
texture {
rod_texture1
}
bounded_by {
sphere { <0, 0, 0>, 7.6 }
}
translate <0, -20.5, 0>
}
#declare innertube =
object {
torus3
texture {
innertube_texture
}
bounded_by {
sphere { <0, 0, 0>, 14.1 }
}
}
#declare structurebase =
union {
object { halfring_array }
object { quarterring_array }
object { ringball_array }
object { blueloop_array }
object { pole_array }
object { basering }
object { innertube }
bounded_by {
sphere { <0, 0, 0>, 22 }
}
}
#declare balls =
sphere {
<0, 0, 0>, 4.0
texture {
balls_texture
}
}
#declare block1 =
intersection {
object {
Cube
scale <10, 1, 10>
}
object {
Cylinder_Y
scale <6, 1, 6>
inverse
}
texture {
tile1_texture
}
bounded_by {
sphere { <0, 0, 0>, 15 }
}
}
#declare block2 =
intersection {
object {
Cube
scale <10, 1, 10>
}
object {
Cylinder_Y
scale <6, 1 ,6>
inverse
}
texture {
tile2_texture
}
bounded_by {
sphere { <0, 0, 0>, 15 }
}
}
#declare frame =
object {
Cube
scale <21, 1.5, 21>
clipped_by {
object {
Cube
scale <20, 2, 20>
inverse
}
}
texture { frame_texture }
}
#declare bigtile =
union {
object { block1 translate < 10, -1, 10> }
object { block1 translate <-10, -1, -10> }
object { block2 translate <-10, -1, 10> }
object { block2 translate < 10, -1, -10> }
object { frame }
bounded_by { box { <-21.1, -2.6, -21.1>, <21.1, 0.6, 21.1> } }
}
#declare floor =
object { bigtile }
// color debugger
// object { Cylinder_Y scale <3, 1, 3> texture { rod_texture1 } }
// object { Cylinder_X scale <1, 3, 3> texture { rod_texture1 } }
//-----------------------------------------------------------------------------
// Put it all together and render it
//-----------------------------------------------------------------------------
object { structurebase }
union {
object { balls translate <0, 0, 0> }
object { balls translate <0, -8, 0> }
object { balls translate <0, -16, 0> }
bounded_by {
object {
Cylinder_Y
scale <4.1, 1, 4.1>
}
}
}
object {
floor
rotate 45*y
translate -20*y
}